/**
 * Copyright (c) 2016-2019 万达信息 All rights reserved.
 *
 * http://www.wondersgroup.com/
 *
 * 版权所有，侵权必究！
 */

package com.wonders.app.utils;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * jwt工具类
 *
 * @author Mark xu_xiang@wondersgroup.com
 */
//@ConfigurationProperties(prefix = "middle.dir")
@Component
public class JwtUtils {
    private Logger logger = LoggerFactory.getLogger(getClass());

    private String secret;
   private long expire ;
    private String header;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String name ;

    /**
     *
     * 生成jwt token
     *
     *   第一部分：Header
     *      由两部分组成，alg（算法）与type（类型）
     *
     *  JWT第二部分是：Payload
     *      是主体信息组成，用于存储JWT的基本信息，或者我们的信息
     *      例如：
     *          {
     *            "sub": "1234567890",  //token的所有人
     *            "name": "John Doe",  //所有人的名字
     *            "admin": true        //是否是管理员角色
     *            }
     *       它的json结构实际上是对JWT要传递的数据的一组声明，这些声明被称为Claims，属性值对
     *   第三部分：签名
     */


    /**
     * token是否过期
     * @return  true：过期
     */
    public boolean isTokenExpired(Date expiration) {
        return expiration.before(new Date());
    }

    public String getSecret() {
        return secret;
    }

    public void setSecret(String secret) {
        this.secret = secret;
    }

    public long getExpire() {
        return expire;
    }

    public void setExpire(long expire) {
        this.expire = expire;
    }

    public String getHeader() {
        return header;
    }

    public void setHeader(String header) {
        this.header = header;
    }
}
